package com.example.java8.feature_05.func_interface;

import java.util.Arrays;
import java.util.List;
import java.util.function.Predicate;
import java.util.stream.Collectors;

public class TestPredicate {

    /**
     * Predicate<T> 谓词，段言型接口
     * T:入参类型
     */
    public static void main(String[] args){

        List<String> list = Arrays.asList("hello", "wocao", "nima");

        // 使用匿名内部类来创建Predicate对象实例
        System.out.println(list.stream().filter(new Predicate<String>() {
            @Override
            public boolean test(String s) {
                return s.contains("a");
            }
        }).collect(Collectors.toList()));

        // 使用lambda表达式来创建Predicate对象类型(与上面执行效果完全一样)
        List<String> results = list.stream()
                .filter(str -> str.contains("a"))
                .collect(Collectors.toList());
        System.out.println(results);

    }

}
